﻿/// <summary>
/// 人脸信息
/// </summary>
public class FaceInfo
{
    // 序号
    public int sequence_no { get; set; }

    // 设备（相机）编号
    public string device_no { get; set; }

    // 设备（相机）序列号
    public string device_sn { get; set; }

    // 点位编号
    public string addr_no { get; set; }

    // 点位名称
    public string addr_name { get; set; }

    // 抓拍时间
    public string cap_time { get; set; }

    // 实时抓拍标志
    public int is_realtime { get; set; }

    // 不通行原因
    public int match_failed_reson { get; set; }

    // 比对结果
    public int match_result { get; set; }

    // 匹配人员信息
    public MatchInfo match { get; set; } = new MatchInfo();

    // 全景图像标志
    public bool overall_pic_flag { get; set; }

    // 全景图像
    public ImageInfo overall_pic { get; set; } = new ImageInfo();

    //// 特写图像标志
    //public bool closeup_pic_flag { get; set; }

    //// 特写图像
    public ImageInfo closeup_pic { get; set; } = new ImageInfo();

    //// 视频标志
    //public bool video_flag { get; set; }

    //// 视频
    //public VideoInfo video { get; set; } = new VideoInfo();

    //// 人员属性信息
    //public PersonInfo person { get; set; } = new PersonInfo();

    //// 身份证信息
    //public IDCardInfo id_card { get; set; } = new IDCardInfo();

    //// 二维码数据
    //public QRCodeInfo qr_code { get; set; } = new QRCodeInfo();

    //// 位置信息
    //public GPSInfo gps { get; set; } = new GPSInfo();
}

/// <summary>
/// 人员匹配信息
/// </summary>
public class MatchInfo
{
    // 是否加密
    public bool is_encryption { get; set; }

    // 人员ID
    public string person_id { get; set; }

    // 人员姓名
    public string person_name { get; set; }

    // 32bit韦根协议门禁卡号
    public int wg_card_id { get; set; }

    // 64bit韦根协议门禁卡号
    public long long_card_id { get; set; }

    // 人员角色
    public int person_role { get; set; }

    // 注册图像格式
    public string format { get; set; }

    // 注册图像数据
    public string image { get; set; }

    // 人员注册来源
    public string origin { get; set; }

    // 人员名单有效属性
    public string person_attr { get; set; }

    // 用户自定义文本内容
    public string customer_text { get; set; }

    // 比对成功类型
    public string[] match_type { get; set; }
}

/// <summary>
/// 图像信息
/// </summary>
public class ImageInfo
{
    // 图像格式
    public string format { get; set; }

    // 图像数据
    public string data { get; set; }

    // 人脸位置X坐标
    public int face_x { get; set; }

    // 人脸位置Y坐标
    public int face_y { get; set; }

    // 人脸宽度
    public int face_width { get; set; }

    // 人脸高度
    public int face_height { get; set; }
}

/// <summary>
/// 视频信息
/// </summary>
public class VideoInfo
{
    // 视频起始时间
    public string start_time { get; set; }

    // 视频结束时间
    public string end_time { get; set; }

    // 视频格式
    public string format { get; set; }

    // 视频数据
    public string data { get; set; }
}

/// <summary>
/// 人员属性信息
/// </summary>
public class PersonInfo
{
    // 性别
    public string sex { get; set; }

    // 年龄
    public int age { get; set; }

    // 佩戴安全帽情况
    public string hat { get; set; }

    // 体温
    public double temperatur { get; set; }

    // 佩戴口罩情况
    public bool has_mask { get; set; }

    // 人像质量
    public int face_quality { get; set; }

    // 扭转角度
    public int turn_angle { get; set; }

    // 平面旋转角度
    public int rotate_angle { get; set; }

    // 32bit韦根协议门禁卡号
    public int wg_card_id { get; set; }

    // 64bit韦根协议门禁卡号
    public long long_card_id { get; set; }
}

/// <summary>
/// 身份证信息
/// </summary>
public class IDCardInfo
{
    // 编号
    public string number { get; set; }

    // 姓名
    public string name { get; set; }

    // 出生日期
    public string birthday { get; set; }

    // 性别
    public string sex { get; set; }

    // 民族
    public string national { get; set; }

    // 住址
    public string residence_address { get; set; }

    // 签发机关
    public string organ_issue { get; set; }

    // 有效期起始时间
    public string valid_date_start { get; set; }

    // 有效期截止时间
    public string valid_date_end { get; set; }
}

/// <summary>
/// 二维码信息
/// </summary>
public class QRCodeInfo
{
    // 二维码类型
    public string qr_type { get; set; }

    // 二维码数据
    public string qr_data { get; set; }
}

/// <summary>
/// 位置信息
/// </summary>
public class GPSInfo
{
    // 经度
    public string n { get; set; }

    // 纬度
    public string e { get; set; }

    // 参考卫星数量
    public int strength { get; set; }
}